home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group00a.txt
/
000105_icon-group-sender _Wed May 17 12:23:02 2000.msg
< prev
next >
Wrap
Internet Message Format
|
2001-01-03
|
3KB
Return-Path: <icon-group-sender>
Received: (from root@localhost)
by baskerville.CS.Arizona.EDU (8.9.1a/8.9.1) id MAA09657
for icon-group-addresses; Wed, 17 May 2000 12:22:45 -0700 (MST)
Message-Id: <200005171922.MAA09657@baskerville.CS.Arizona.EDU>
Subject: Re: Is Anyone Working On A Unicode Version Of Icon?
Date: Wed, 17 May 2000 10:49:08 -0700
x-sender: cary@adlmail.cup.hp.com
From: Cary Coutant <cary@cup.hp.com>
To: "Steve Wampler" <swampler@noao.edu>,
"icon-group" <icon-group@optima.CS.Arizona.EDU>
Errors-To: icon-group-errors@optima.CS.Arizona.EDU
Status: RO
>Just for historical accuracy...
>
>1979 is the first C implemenation of Icon (done by Cary Coutant and me) -
>the first implementation of Icon (an amazing beast written in FORTRAN that
>producing FORTRAN (really RatFor) executables) was several years old by
>that time. Also, the C implementation was done on a PDP 11/70, with
>its 64K address space - so some of the implementation decisions were driven
>by considerations that are no longer relevant!
>
>Cary produced a compiler for Icon at the same time, but there was
>surprisingly
>little improvement over the interpreter because Icon spends most of its time
>in the run-time system, which is already compiled code. It wasn't until
>later
>that Ken Walker's work produced a more efficient optimizing compiler.
To clarify a bit more, the first implementation we did in 1979 was sort
of a compiler. The icon translator still generated the "u-code" -- our
intermediate representation -- and the icon linker then generated a
single, large, PDP-11 assembly-language source file. This file was then
assembled and linked against the large Icon runtime library to produce a
native executable. The assembly code was really little more than calls to
the runtime system, and was a very straightforward and simple translation
of the Icon intermediate code.
The problem with this approach was that the runtime library was so huge
that link times were large even for a simple "hello, world" program.
Around 1981, I think, I spent a week modifying the Icon linker to produce
the Icon byte code instead of PDP-11 assembly language, and then built a
small interpreter, linked to the runtime system. Now, the Icon linker
needed only to produce a small bytecode file that could be read and
interpreted by "iconx." The result was greatly improved compile and link
times, very little runtime performance difference, and -- finally --
easier portability to other Unix machines.
At the time, I was just copying the idea of a bytecode interpreter from
the Pascal p-system. Little did I realize that Sun had yet to "invent"
bytecode!
-cary